// 概念 node是什么？ 不是一门语言 核心就是一个让js可以运行在服务端的一个运行时（我们可以使用js来实现服务端 或者做工具）

// js 有几部分组成(DOM BOM) ECMASCRIPT

// node 中只能使用ECMASCRIPT语法本身 （node提供了内置模块可以帮我们做系统级的操作 fs，http...）
// + npm 包

// 中间层 后端没有跨域问题 跨域是浏览器的限制

// ssr 服务端渲染 react vue = node 可以解析react vue语法渲染后返回给浏览器 next

// 打包工具 webpack rollup 前端可以通过node 来实现各种各样的工具

// node 其实做服务端没有啥优势 刚开始为了和web密切结合的

// 主线程是单线程的

// java 多线程每次请求都开一个线程（线程池）请求过多的话 浪费内存，锁的问题，通过时间片切换感觉是并发做事 切换时间片也是有性能消耗 java可以利用多线程来实现加密 压缩（cpu密集型）

// 高并发都是单线程异步 node本身有个libuv库 内部用多线程来实现异步的
// node中没有锁 就一个主线程（内存消耗少） 如果主线程工作量大会有阻塞问题。 不适合cpu密集型。（加密、压缩、计算） 适合i/o密集型（读个文件/数据库） （单线程是无法利用多核CPU）  可以开子进程 多个进程可以充分利用cpu内核

// 异步 非阻塞  、java 同步阻塞    BIO模型（同步、非阻塞）

// 阻塞和非阻塞指的是调用方  同步和异步指的是被调用方
